home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 4 / CU Amiga Magazine's Super CD-ROM 04 (1996)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1996-11].iso / magazine / psion / games / shelter.lzx / shelter.opl next >
Text File  |  2000-05-19  |  4KB  |  198 lines

  1. PROC shelter:
  2. GLOBAL money,pop&,shelt&,dead&,score&
  3. GLOBAL attacks&,year&,c&,a,x&,titl$(40)
  4. GLOBAL again$(1),nme$(3),scr,name$(4,3),hiscr&(4)
  5. GLOBAL dat$(30),dt$(30),date$(4,30)
  6.  
  7. IF NOT EXIST ("shelt")
  8. CREATE "shelt",A,nme$,scr,dt$
  9. ELSE
  10. OPEN "shelt",A,nme$,scr,dt$
  11. ENDIF
  12.  
  13. x&=1
  14. DO
  15. POSITION x&
  16. name$(x&)=A.nme$
  17. hiscr&(x&)=A.scr
  18. date$(x&)=A.dt$
  19. x&=x&+1
  20. UNTIL x&=5
  21. CLOSE
  22. inst:
  23. more::
  24. hiscores:
  25. money=10000 :pop&=10000 :shelt&=0
  26. dead&=0 :attacks&=0:score&=0
  27. year&=1
  28.  
  29. DO
  30. again::
  31. CLS
  32. PRINT "NUCLEAR FALLOUT","   ","Year",year&
  33. PRINT
  34. PRINT "Chances of Attack are",20-year&,"to one"
  35. PRINT "Population is",pop&,"  Money œ";money
  36. PRINT "Shelter",shelt&,"   Dead Citizens",dead&
  37. PRINT "No in Shelter",shelt&/10,"  Nuclear Attacks",attacks&
  38. PRINT "How much to spend ? œ";
  39. INPUT a
  40.  
  41. IF money-a<0 OR shelt&+a<0
  42. BEEP 32,300 :BEEP 32,600
  43. GOTO again::
  44. ENDIF
  45.  
  46. money=money-a :shelt&=shelt&+a :money=money+INT(money/10+.5)
  47.  
  48. rem nuclear attack
  49. IF INT(RND*(20-year&))+1=1
  50. CLS
  51. attacks&=attacks&+1 :x&=INT ((shelt&/10)+.5)
  52. PRINT titl$
  53. PRINT
  54. PRINT "Population protected",x&
  55. x&=pop&-x&
  56. PRINT
  57. IF x&<0
  58. PRINT "No-one killed"
  59. ELSE PRINT "Number killed",x&
  60. ENDIF
  61. dead&=dead&+x& :shelt&=shelt&-INT((shelt&/10)+.5)
  62. PRINT
  63. PRINT "Shelter left",shelt&
  64. PRINT
  65. PRINT "      Press a key to Continue"
  66. GET
  67.  
  68. IF x&/pop&>.9
  69. CLS
  70. PRINT titl$
  71. PRINT
  72. PRINT "More than half the population are"
  73. PRINT "dead and the others have revolted"
  74. PRINT "You are sentenced to face a firing"
  75. PRINT "squad in the morning for you failures"
  76. GOTO here::
  77. ENDIF
  78. pop&=pop&-x&
  79. ENDIF
  80. year&=year&+1
  81. UNTIL year&=20
  82. CLS
  83. score&=money+(pop&*75)+INT((shelt&-(pop&*10))/2)
  84. PRINT "Well done you managed to get through"
  85. PRINT "troubled times with œ";money
  86. PRINT "You kept ";pop&,"people alive"
  87. PRINT "in",shelt&,"Cubic ft of shelter"
  88. here::
  89. PRINT
  90. PRINT "For that you score",score&,"points."
  91. chkhi:
  92. PRINT "Again (Y/N)"
  93. noans::
  94. again$=GET$
  95. IF again$="Y" or again$="y"
  96. GOTO more::
  97. ELSEIF again$="N" OR again$="n"
  98. DELETE "shelt"
  99. CREATE "shelt",A,nme$,scr,dt$
  100. x&=1
  101. DO
  102. A.nme$=name$(x&)
  103. A.scr=hiscr&(x&)
  104. A.dt$=date$(x&)
  105. APPEND
  106. x&=x&+1
  107. UNTIL x&=5
  108. CLOSE
  109. hiscores:
  110. STOP
  111. ENDIF
  112. GOTO noans::
  113. ENDP
  114.  
  115.  
  116. PROC inst:
  117. CLS
  118. titl$="   N U C L E A R    F A L L O U T   "
  119. PRINT titl$
  120. PRINT
  121. PRINT "You are in charge of Civil defence"
  122. PRINT "for the local town.  War is likely."
  123. PRINT "It is your job to decide, each year,"
  124. PRINT "how much you will spend on fallout"
  125. PRINT "shelters."
  126. GET
  127. CLS
  128. PRINT titl$
  129. PRINT
  130. PRINT "You start off with a population of"
  131. PRINT "10,000, œ10,000 and no shelters."
  132. PRINT "Each citizen needs 10 cubic metres"
  133. PRINT "of shelter to survive, and each cubic"
  134. PRINT "metre costs œ1.  The money you do not"
  135. PRINT "spend has 10% interest added on to it."
  136. GET
  137. CLS
  138. PRINT titl$
  139. PRINT
  140. PRINT "You have to decide whether to save up"
  141. PRINT "your money or protect as many of your"
  142. PRINT "citizens you can."
  143. PRINT "The chances of attack increase every"
  144. PRINT "year."
  145. PRINT
  146. PRINT "  Good Luck ...Press a key to start"
  147. GET
  148. ENDP
  149.  
  150. PROC hiscores:
  151. CLS :PRINT titl$
  152. PRINT
  153. PRINT "High Scores to Date"
  154. PRINT
  155. x&=1
  156. DO
  157. PRINT name$(x&);"  ";hiscr&(x&);"  ";date$(x&)
  158. x&=x&+1
  159. UNTIL x&=5
  160. GET
  161. ENDP
  162.  
  163. PROC chkhi:
  164. LOCAL y&,init$(3)
  165. x&=1
  166. DO
  167. IF score&>hiscr&(x&)
  168. GOTO goodie::
  169. ENDIF
  170. x&=x&+1
  171. UNTIL x&=5
  172. GOTO fini::
  173.  
  174. goodie::
  175. PRINT "Well done you've recorded a high score."
  176. PRINT "Please enter your initials (MAX 3) ";
  177. INPUT init$
  178. y&=4
  179. DO
  180. IF y&=x&
  181. GOTO best::
  182. ENDIF
  183. name$(y&)=name$(y&-1)
  184. hiscr&(y&)=hiscr&(y&-1)
  185. date$(y&)=date$(y&-1)
  186. y&=y&-1
  187. IF y&=1 
  188. GOTO best::
  189. ENDIF
  190. UNTIL y&=x&
  191. best::
  192. dat$=DATIM$
  193. name$(x&)=init$
  194. hiscr&(x&)=score&
  195. date$(x&)=dat$
  196. fini::
  197. ENDP
  198.